// pages/me/me.js
const todos = require("../../utils/DB.js");
Page({

  /**
   * 页面的初始数据
   */
  data: {
    bgcolor: "yellowgreen",
    nickName: "点击登录",
    avatarUrl: "cloud://cloud-xd-cinema-7gslp6hy10b4bc57.636c-cloud-xd-cinema-7gslp6hy10b4bc57-1306321872/star.jpg",
    isLogin: false,
    user_openid: ""
  },
  // 子组件
  tab3times(e) {
    console.log("me触发了tab,传值为：" + e.detail);
  },
  // 获取用户信息
  tapLogin() {
    let that = this;
    if (!that.data.isLogin) {
      wx.getUserProfile({
        desc: '完善会员资料',
        success: (res) => {
          console.log("登录成功！获取用户信息如下:");
          console.log(res);
          // that.setData({
          //   nickName: res.userInfo.nickName,
          //   avatarUrl: res.userInfo.avatarUrl,
          //   isLogin:true
          // })
          // 执行自定的登录业务
          that.login(res.userInfo.nickName, res.userInfo.avatarUrl);
        }
      })
    } else {
      return
    }
  },
  /**登录 */
  login(nickname, avatar) {
    let that = this;
    //调用云函数：login，获得返回结果
    wx.cloud.callFunction({
      name: "login"
    }).then(res => {
      // console.log(res);
      // res.result.openid 就是当前用户的唯一标识符
      //通过Openid查询云数据库，看一下有没有用户
      //如果有则登录成功
      // 如果没有，则属于第一次登录，执行注册业务
      // console.log("云函数获取到用户_openid,如下");
      // 打印用户_openid
      // console.log(res.result.openid);
      that.data.user_openid = res.result.openid;
      todos.selectDBByType("users", {
        "_openid": res.result.openid
      }).then(res => {
        console.log("拿到用户数据");
        if (!res.data.length) {
          that.register(nickname, avatar);
        } else {
          that.setData({
            nickName: res.data[0].nickname,
            avatarUrl: res.data[0].avatar,
            isLogin: true
          })
        }
      })
    })
  },

  /**注册 将当前用户信息的id， openid avatar nickname存储数据库 */
  register(nickname, avatar) {
    let that = this;
    let userIfo = {
      avatar: avatar,
      nickname: nickname
    };
    todos.createDataDB("users", userIfo).then(res => {
      that.setData({
        nickName: nickname,
        avatarUrl: avatar
      })
    }).catch(err => {
      console.error(err);
    });
  },
  /**修改用户头像 */
  tabChooseAvatar() {
    let that = this;
    if (that.data.isLogin) {
      wx.chooseImage({
        count: 1,
        success: (res) => {
          console.log("更新头像成功");
          that.setData({
            avatarUrl: res.tempFilePaths[0]
          })

          that.uploadFile(res.tempFilePaths[0])
        }
      })
    } else {}
  },
  /**上传文件到云存储空间 */
  uploadFile(filePath) {
    let that = this;
    //  从filePath中获取文件后缀名
    // 生成一个随机文件名，作为cloudpath，存入云储存
    let ext = filePath.substr(filePath.lastIndexOf("."));
    let cloudpath = that.data.user_openid + ext;
    console.log(cloudpath);
    wx.cloud.uploadFile({
      //  上传到指定的路劲下
      cloudPath: "avatar/" + cloudpath,
      filePath: filePath, // 文件路径
    }).then(res => {
      // get resource ID
      // 将云存储的头像路径更新到云数据库中
      todos.updateDbById("users",{_openid:that.data.user_openid}, {
        avatar: res.fileID
      }).then(res => {
        console.log(res);
        console.log("update success!");
      }).catch(err => {})
      console.log(res.fileID)
      console.log(res);
    }).catch(error => {
      // handle error
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 设置页面title
    wx.setNavigationBarTitle({
      title: '个人资料',
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})